/* 高斯消元 O(n^3)
* 处理方法：枚举列
    找主元(绝对值最大的数)
    交换: 主元所在行换到最上方
    归一: 主元化为1
    消: 把这一列的其他行化为0

* 本题:
    方案数=2…^自由元个数=2^(n-非0行个数)
*/

#define DEBUG
#pragma GCC optimize("O1,O2,O3,Ofast")
#pragma GCC optimize("no-stack-protector,unroll-loops,fast-math,inline")
#pragma GCC target("avx,avx2,fma")
#pragma GCC target("sse,sse2,sse3,sse4,sse4.1,sse4.2,ssse3")

#include <cstring>
#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
const int N = 35;

int n;
int a[N][N];

int Gauss()
{
    //化成上三角矩阵
    int r=  1, c = 1;
    for(; c <= n; ++c) { //r行c列
        //找主元
        int t = r;
        for(int i = r+1; i <= n; ++i) //找到较大值
            if(a[i][c])
                t = i;
        if(!a[t][c]) continue;//没有主元

        //交换第r行和第t行的元素，将主元换到最上方
        for(int i = c; i <= n+1; ++i) swap(a[r][i], a[t][i]);

        //归一化(第r行(主元所在行)除以主元系数) 系数全为1，不需要归一
        //for(int i = n+1; i >= c; --i) a[r][i] /= a[r][c];

        //消元(用主元所在行把下面所有行的第c列消为0)
        for(int i = r+1; i <= n; i++) {
            for(int j = n+1; j >= c; --j) {
                a[i][j] ^= a[r][j] & a[i][c];
            }
        }
        r++;
    }
    
    int res = 1;
    if(r < n+1) {
        for(int i = r; i <= n; ++i)
        {
            if(a[i][n+1]) return -1; //出现0==!0 无解
            res *= 2;
        }
    }
    return res;
    
}

signed main()
{
    #ifdef DEBUG
        freopen("./in.txt", "r", stdin);
    #else
        ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    #endif

    int T; cin >> T;
    while(T--) {
        memset(a,0,sizeof a);
        cin >> n;
        for(int i = 1; i <= n; ++i) cin >> a[i][n+1];

        // 转为线性方程组
        for(int i = 1; i <= n; ++i) //目标结果
        {
            int t; cin >> t;
            a[i][n+1] ^= t; //灯是否发生变化
            a[i][i] = 1;
        }

        int x, y;
        while(cin >> x >> y, x || y) a[y][x] = 1; //y与x的系数为1
        
        int t = Gauss(); //Gauss消元
        if(t == -1) puts("Oh,it's impossible~!!");
        else printf("%d\n", t);
        
    }
    
    return 0;
}
